<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>

<body>
  <input type="text" id="txt">
  <div id="show"></div>
  <button id="btn">生成第13位验证码</button>
  <script>
    // Ean-13码规则：第十三位数字是前十二位数字经过计算得到的校验码。
    // 		例如：690123456789
    // 		第十三位计算其校验码的过程为：
    // 		1)前十二位的奇数位和6+0+2+4+6+8=26
    // 		2)前十二位的偶数位和9+1+3+5+7+9=34
    // 		3)将奇数和与偶数和的三倍相加26+34*3=128
    // 		4)取结果的个位数：128的个位数为8
    // 		5)用10减去这个个位数10-8=2
    // 		所以校验码为2
    // 		（注：如果取结果的个位数为0，那么校验码不是（10-0=10），而是0）
    // 		实现方法ean13（）计算验证码，输入12位条码，返回带验证码的条码。
    var btn = document.getElementById("btn");
    var show = document.getElementById("show");
    var txt = document.getElementById("txt");
    btn.onclick = function () {
      var txtVal = txt.value//12位验证码 "690123456789"
      var odd = 0; //奇数和
      var even = 0;//偶数和
      for (i = 0; i < txtVal.length; i++) {
        if (i % 2 == 0) {
          odd += parseInt(txtVal[i]) //前十二位的奇数位和6+0+2+4+6+8=26
        } else {
          even += parseInt(txtVal[i])//前十二位的偶数位和9+1+3+5+7+9=34
        }
      }
      var sum = odd + even * 3; //将奇数和与偶数和的三倍相加26+34*3=128
      var ge = sum % 10;//取结果的个位数：128的个位数为8
      var code = 10 - ge;//用10减去这个个位数10-8=2
      show.innerHTML = code;//显示验证码
    }




  </script>
</body>

</html>